API review
Proposer: Brian Gerkey
Present at review:
- List reviewers
Question / concerns / comments
Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.
We're reviewing the ROS API of the amcl node (it's the only API exposed by the amcl package):
Deadline for comments is 2009-09-10, 6pm PDT.
- Bhaskara
- Api doesn't mention initialpose.
Fixed
- Perhaps initialpose and global_localization can be unified:
- Have a single setPoseEstimate service that takes in a pose and covariance, and resets the set of particles to approximate a Gaussian with that mean and covariance.
- global_localization can be replaced by calling this service with a large covariance.
- initialpose can be replaced by calling this service with close-to-zero covariance.
- Would allow intermediate versions (e.g., we know we're starting off in the green room).
Since it became a PoseWithCovarianceStamped, initialpose is doing exactly what's proposed; pose and covariance can be set arbitrarily. global_localization is still useful, because it uses rejection sampling to place all particles in the free space of the map; without the rejection step, prohibitively many particles would be needed to cover most maps.
- Would be useful to be able to set number of particles.
This can be done at startup using parameters (min_particles and max_particles). If changing these values online is needed, please ticket with a supporting use-case.
- Api doesn't mention state when node is started up. When I use it, it seems to start off at (0,0,0) with fairly small covariance.
This behavior is now documented.
- Might be good to instead initialize to be at center of map with covariance that's proportional to the map size.
- Assuming global localization works, this would remove the need for the initial "set pose in rviz" step
Given enough particles, global localization does work, but in practice it's too slow to be convenient. Also, if too few particles are allocated, global localization can be error-prone.
- Often, if the robot is slightly mislocalized, you have to drive it around for a bit for the estimates to snap into place. Would be nice if this driving-around step wasn't necessary.
True enough, but to my knowledge this is a necessary consequence of using a particle filter state estimator.
- Api doesn't mention initialpose.
- Tully
/tf_message -> /tf
Fixed
- What namespace are the parameters in?
Fixed
Meeting agenda
To be filled out by proposer based on comments gathered during API review period
Conclusion
Package status change mark change manifest)
Action items that need to be taken.
Major issues that need to be resolved
All feedback incorporated or rebutted. API cleared.